/* 
 * File:   Auxiliar.h
 * Author: Henrique
 *
 * Created on 28 de Setembro de 2011, 09:36
 */

#ifndef AUXILIAR_H
#define	AUXILIAR_H

#include "highgui.h"
#include "cv.h"
#include "cxcore.h"
#include "cvaux.h"
#include <cstring>
#include <iostream>
#include <fstream>

using namespace std;

class Auxiliar {
public:
    Auxiliar();
    Auxiliar(const Auxiliar& orig);
    virtual ~Auxiliar();

    /**
     * Forma uma string que vai ser um caminho para a imagem
     * @param path a pasta das imagens
     * @param extension a extensão das imagens
     * @param i o numero da imagem
     * @return uma string na forma pathi.extensao
     * ex: Path = C:\imagem, extension = png, i = 5 retornará C:\imagem5.png
     */
    static string fileName(string path, string extension, int i);

    /**
     * Retorna o valor máximo de um array de doubles
     * @param array o array a ser analisado
     * @param arraySize o tamanho do array
     * @return o elemento máximo
     */
    static double maxValue(double * array, int arraySize);

    /**
     * Cria um arquivo e coloca todos os elementos do array, sendo um em cada linha
     * @param name o nome que será dado ao arquivo
     * @param array o array cujo os elementos irão para o arquivo
     * @param arraySize o tamanho do array
     */
    static void createArchieve(string name, double * array, int arraySize);

    /**
     * Cria um arquivo e coloca o conteudo nele
     * @param name o nome do arquivo a ser criado
     * @param content o conteudo a ser adicionado
     */
    static void createArchieve(string name, string content);

    static double findNumberBlackPixels(IplImage* image, int height, int width);

};

#endif	/* AUXILIAR_H */

